home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / INSTALL < prev    next >
Encoding:
Text File  |  1995-08-26  |  26.4 KB  |  593 lines

  1. XEmacs Installation Guide
  2. Copyright (c) 1994, 1995 Board of Trustees, University of Illinois
  3. Copyright (c) 1994 Free Software Foundation, Inc.
  4.  
  5.    Permission is granted to anyone to make or distribute verbatim copies
  6.    of this document as received, in any medium, provided that the
  7.    copyright notice and permission notice are preserved,
  8.    and that the distributor grants the recipient permission
  9.    for further redistribution as permitted by this notice.
  10.  
  11.    Permission is granted to distribute modified versions
  12.    of this document, or of portions of it,
  13.    under the above conditions, provided also that they
  14.    carry prominent notices stating who last changed them,
  15.    and that any new or changed statements about the activities
  16.    of the Free Software Foundation are approved by the Foundation.
  17.  
  18.  
  19. BUILDING AND INSTALLATION:
  20.  
  21. 1) Make sure your system has enough swapping space allocated to handle
  22. a program whose pure code is 900k bytes and whose data area is at
  23. least 400k and can reach 8Mb or more.  If the swapping space is
  24. insufficient, you will get an error in the command `temacs -batch -l
  25. loadup dump', found in `./src/Makefile.in.in', or possibly when
  26. running the final dumped XEmacs.
  27.  
  28. Building XEmacs requires about 50 Mb of disk space (including the
  29. XEmacs sources).  Once installed, XEmacs occupies about 38 Mb in the
  30. file system where it is installed; this includes the executable files,
  31. Lisp libraries, miscellaneous data files, and on-line documentation.
  32. If the building and installation take place in different directories,
  33. then the installation procedure momentarily requires 50+38 Mb.
  34.  
  35. XEmacs requires an ANSI C compiler, such as LCC or GCC.
  36.  
  37. 2) Consult `./etc/MACHINES' to see what configuration name you should
  38. give to the `configure' program.  That file sometimes offers hints for
  39. getting around some possible installation problems.
  40.  
  41. 3) In the top directory of the XEmacs distribution, run the program
  42. `configure' as follows:
  43.  
  44.     ./configure CONFIGURATION-NAME [--OPTION[=VALUE]] ...
  45.  
  46. The CONFIGURATION-NAME argument should be a configuration name given
  47. in `./etc/MACHINES'.  If omitted, `configure' will try to guess your
  48. system type by inspecting its environment; if it cannot, you must find
  49. the appropriate configuration name in `./etc/MACHINES' and specify it
  50. explicitly.
  51.  
  52. If you don't want X support, specify `--with-x=no'.  If you omit this
  53. option, `configure' will try to figure out for itself whether your
  54. system has X, and arrange to use it if present.
  55.  
  56. Additional support can be included for the NeXTstep system by
  57. specifying the flag `--with-ns'.  This is not yet fully supported.
  58.  
  59. The `--x-includes=DIR' and `--x-libraries=DIR' options tell the build
  60. process where the compiler should look for the include files and
  61. object libraries used with the X Window System.  Normally, your
  62. compiler should be able to find these by default; these options should
  63. only be necessary if you have your X Window System files installed in
  64. unusual places.
  65.  
  66. The `--site-includes=DIR' and `--site-libraries=DIR' options allow you
  67. to specify additional places the compiler should look for include
  68. files and object libraries.  You may specify multiple DIR's by
  69. enclosing the list in quotes.  On some systems (noticeably Solaris) you
  70. may need to use `--site-runtime-libraries=DIR'.  This will add -R
  71. versions of each path in addition to the -L versions.
  72.  
  73. The `--with-gcc' option specifies that the build process should
  74. compile XEmacs using GCC.  The `--with-lcc' option specifies that the
  75. build process should compile XEmacs using Lucid C.  The `--compiler'
  76. option allows you to specify some other compiler to be used to compile
  77. XEmacs.  It is compatible with both the `--with-gcc' and `--with-lcc'
  78. options, so if the compiler that you specify is a special version of
  79. either gcc or lcc, then use the appropriate --with-gcc or --with-lcc
  80. flag as well as the --compiler flag.  If none of these flags is
  81. specified, `configure' will search for GCC in your load path, and use
  82. it if present.  If you don't want to use GCC, specify `--with-gcc=no'
  83. and the compiler will then default to 'cc'.
  84.  
  85. The `--cflags' option specifies the CFLAGS the build process should
  86. use when compiling XEmacs.  If not used CFLAGS defaults to "-g -O" for
  87. gcc and "-g" for all other compilers.
  88.  
  89. The `--dynamic' option specifies that configure should try to link
  90. emacs dynamically rather than statically.
  91.  
  92. The `--const-is-losing' option is for use if you have trouble
  93. compiling due to the `const' storage class in C.  This is defined by 
  94. default.  Most users should have no need to change this.
  95.  
  96. The `--srcdir=DIR' option specifies that the configuration and build
  97. processes should look for the XEmacs source code in DIR, when DIR is
  98. not the current directory.
  99.  
  100. You can use `--srcdir' to build XEmacs for several different machine
  101. types from a single source directory.  Make separate build directories
  102. for the different configuration types, and in each one, build XEmacs
  103. specifying the common source directory with `--srcdir'.
  104.  
  105. The `--prefix=PREFIXDIR' option specifies where the installation process
  106. should put XEmacs and its data files.  This defaults to `/usr/local'.
  107. - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
  108.   (unless the `--exec-prefix' option says otherwise).
  109. - The architecture-independent files go in PREFIXDIR/lib/xemacs-VERSION
  110.   (where VERSION is the version number of XEmacs, like `19.10').
  111. - The architecture-dependent files go in
  112.   PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION
  113.   (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
  114.   unless the `--exec-prefix' option says otherwise.
  115.  
  116. The `--exec-prefix=EXECDIR' option allows you to specify a separate
  117. portion of the directory tree for installing architecture-specific
  118. files, like executables and utility programs.  If specified,
  119. - XEmacs (and the other utilities users run) go in EXECDIR/bin, and
  120. - The architecture-dependent files go in
  121.   EXECDIR/lib/xemacs-VERSION/CONFIGURATION.
  122. EXECDIR/bin should be a directory that is normally in users' PATHs.
  123.  
  124. For example, the command
  125.  
  126.     ./configure mips-dec-ultrix
  127.  
  128. configures XEmacs to build for a DECstation running Ultrix, with
  129. support for the X11 window system.  XEmacs currently requires X11 in
  130. order to run so no flag is needed to specify that fact.
  131.  
  132. The `--run-in-place' option will make the installed binaries reference
  133. the source tree for the elisp files.
  134.  
  135. The `--with-menubars=TYPE' option allows you to specify which X
  136. toolkit you wish to use for the menubar.  The valid options are
  137. `lucid' and `motif'.  The default is `lucid' which is a
  138. Motif-lookalike menubar.  We highly recommend its usage over the real
  139. Motif menubar.
  140.  
  141. The `--with-scrollbars=TYPE' option allows you to specify which X
  142. toolkit you wish to use for the scrollbars.  The valid options are
  143. `lucid', `motif', and `athena'.  The default is `lucid' which is a
  144. Motif-lookalike scrollbar.
  145.  
  146. The `--with-dialogs=TYPE' option allows you to specify which X toolkit
  147. you wish to use for the scrollbars.  The valid options are `athena'
  148. and `motif'.  The `lucid' option is accepted and will result in the
  149. `athena' toolkit being used.  If the Motif toolkit can be found the
  150. default is `motif'.  Otherwise, the default is `athena'.
  151.  
  152. The `--with-xpm' option specifies that XEmacs should support X
  153. Pixmaps.  `configure' will attempt to detect if you have the Xpm
  154. libraries and define `--with-xpm' for you.
  155.  
  156. The `--with-xface' option specifies that XEmacs should support
  157. X-Faces.  `configure' will attempt to detect if you have the compface
  158. library and define `--with-xface' for you.
  159.  
  160. The `--with-socks' option specifies that XEmacs should be built with
  161. SOCKS support.
  162.  
  163. The `--with-tooltalk' option specifies that XEmacs should be built
  164. with ToolTalk support for interconnecting with other applications.
  165. ToolTalk is not yet supported on all architectures.
  166.  
  167. The `--with-sparcworks' option specifies that XEmacs should be built
  168. with support for Sun Sparcworks 3.0.1.  This functionality is only of
  169. use on SunOS 4.1.x and Solaris 2.x systems.
  170.  
  171. The `--with-energize' option specifies that XEmacs should be built
  172. with support for the Lucid Energize system.  (If you have not
  173. purchased Energize, specifying this option won't gain you anything.)
  174.  
  175. The `--external-widget' option specifies that XEmacs should be built
  176. with support for being used as a widget.  This functionality should be
  177. considered beta at best.
  178.  
  179. The `--dont-have-xmu' option can be used if your vendor doesn't ship
  180. the Xmu library.
  181.  
  182. The `--puresize' option can be used to change the amount of purespace
  183. allocated for the dumped XEmacs.
  184.  
  185. The `--with-sound=TYPE' option specifies that XEmacs should be built
  186. with sound support.  Native (`--with-sound=native') sound support is
  187. currently available only on Sun SparcStations, SGI's, HP9000s, and
  188. Linux.  Network Audio Support (NAS) (`--with-sound=nas' or
  189. `--with-sound=both') is an extension to X that you may or may not have
  190. for your system.  For NAS, you will probably need to provide the paths
  191. to the nas include and library directories to configure.  `configure'
  192. will attempt to determine if your configuration supports sound and
  193. define --with-sound for you.  If your native sound library is not in a
  194. standard location you can specify where it is with the
  195. `--native-sound-lib=LIB' flag.  For Linux, `/dev/audio' is required
  196. for SunAudio files and `/dev/dsp' is required for raw data and WAVE
  197. format files.
  198.  
  199. The `--rel-alloc' option can be used to either enable or disable use
  200. of the relocating allocator.  Generally, it's best to go with the
  201. default configuration for your system.
  202.  
  203. The `--with-epoch' option enables functionality taken from Epoch.
  204.  
  205. The `--with-i18n3' option provides some internationalization support.
  206. It's a performance killer and it's not really packaged for general
  207. consumption.  It's probably best to not bother with this...wait for
  208. the Mule integration which is currently in progress to be completed.
  209.  
  210. The `--with-mule' option provides Mule support.  This does not work
  211. yet.  It should become fully functional in 19.14.
  212.  
  213. The `--debug' and `--error-checking' options are intended for use only
  214. by the developers.  `--debug' adds code to be compiled in for
  215. performing various tests.  `--error-checking' adds additional tests to
  216. many of the commonly used macros.
  217.  
  218. The `configure' program does not accept abbreviations for its
  219. options.
  220.  
  221. Note that `configure' doesn't do any compilation or installation
  222. itself.  It just creates the files that influence those things:
  223. `./Makefile', `src/Makefile', `./src/config.h' and others.  For
  224. details on exactly what it does, see the section called `CONFIGURATION
  225. BY HAND', below.
  226.  
  227. When it is done, `configure' prints a description of what it did and
  228. leaves a copy in the file `config.status'.  That file is also a shell
  229. script which, when run, recreates the same configuration; it contains
  230. the verbal description as a comment.  If `configure' exits with an
  231. error after disturbing the status quo, it removes `config.status'.
  232.  
  233. The work of `configure' can be done by editing various files in the
  234. distribution, but using `configure' is supposed to be simpler.  See
  235. the section called "CONFIGURATION BY HAND" below if you want to do the
  236. configuration yourself.
  237.  
  238. 4) Look at `./lisp/paths.el'; if some of those values are not right
  239. for your system, edit the file `./lisp/site-init.el' containing XEmacs
  240. Lisp code to override them; you probably don't want to edit paths.el
  241. itself.  YOU MUST USE THE LISP FUNCTION `setq' TO ASSIGN VALUES,
  242. rather than `defvar', as used by `./lisp/paths.el'.  For example,
  243.  
  244.      (setq news-inews-program "/usr/bin/inews")
  245.  
  246. is how you would override the default value of the variable
  247. news-inews-program (which is "/usr/local/inews").
  248.  
  249. Things may malfunction if the variable `directory-abbrev-alist' is not set
  250. up to translate "temporary" automounter mount points into the canonical
  251. form.  The default value of this variable contains the translation
  252.  
  253.     ("^/tmp_mnt/" . "/")
  254.  
  255. meaning translate "/tmp_mnt/net/FOO" into "/net/FOO", which is appropriate
  256. for the default configuration of the Sun automounter, but which may be
  257. inappropriate for different vendor's automounters, or if you have customized
  258. your mount-point names.
  259.  
  260. Note that, on some systems, the code you place in site-init.el must
  261. not use expand-file-name or any other function which may look
  262. something up in the system's password and user information database.
  263. See `./PROBLEMS' for more details on which systems this affects.
  264.  
  265. 5) Put into `./lisp/site-init.el' any Emacs Lisp code you want XEmacs
  266. to load before it is dumped out.  
  267.  
  268. Note that, on some systems, the code you place in site-init.el must
  269. not use expand-file-name or any other function which may look
  270. something up in the system's password and user information database.
  271. See `./PROBLEMS' for more details on which systems this affects.
  272.  
  273. This file is nonexistent in the distribution.  You do not need to
  274. create it if you have nothing to put in it.
  275.  
  276. 6) Run `make' in the top directory of the XEmacs distribution to finish
  277. building XEmacs in the standard way.  The final executable file will be
  278. named `src/xemacs'.  If you want to have XEmacs's executable programs
  279. and data files installed as well, run `make install'.
  280.  
  281. By default, XEmacs installs its files in the following directories:
  282.  
  283. `/usr/local/bin' holds the executable programs users normally run -
  284.         `xemacs', `etags', `ctags', `b2m', and `emacsclient'.
  285.  
  286. `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
  287.         `VERSION' stands for the number of the XEmacs version
  288.         you are installing, like `18.59' or `19.11'.  Since
  289.         the lisp libraries change from one version of XEmacs to
  290.         another, including the version number in the path
  291.         allows you to have several versions of XEmacs installed
  292.         at the same time; this means that you don't have to
  293.         make XEmacs unavailable while installing a new version.
  294.  
  295.         XEmacs searches for its lisp files in these
  296.         directories, and then in
  297.         `/usr/local/lib/xemacs/site-lisp/*'.
  298.  
  299. `/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
  300.         `yow' database, and other architecture-independent
  301.         files XEmacs might need while running.  VERSION is as
  302.         specified for `.../lisp'.
  303.  
  304. `/usr/local/lib/xemacs/lock' contains files indicating who is
  305.         editing what, so XEmacs can detect editing clashes
  306.         between users.
  307.  
  308. `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME' contains executable
  309.         programs used by XEmacs that users are not expected to
  310.         run themselves, and the DOC file. `VERSION' is the
  311.         number of the XEmacs version you are installing, and
  312.         `CONFIGURATION-NAME' is the argument you gave to the
  313.         `configure' program to identify the architecture and
  314.         operating system of your machine, like
  315.         `mips-dec-ultrix' or `sparc-sun-sunos'.  Since these
  316.         files are specific to the version of XEmacs, operating
  317.         system, and architecture in use, including the
  318.         configuration name in the path allows you to have
  319.         several versions of XEmacs for any mix of machines and
  320.         operating systems installed at the same time; this is
  321.         useful for sites at which different kinds of machines
  322.         share the file system XEmacs is installed on.
  323.  
  324. `/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
  325.         for XEmacs, known as "info files".
  326.  
  327. `/usr/local/man/man1' holds the man pages for the programs installed
  328.         in `/usr/local/bin'.
  329.  
  330. If these directories are not what you want, you can specify where to
  331. install XEmacs's libraries and data files or where XEmacs should search
  332. for its lisp files by giving values for `make' variables as part of
  333. the command.  See the section below called `MAKE VARIABLES' for more
  334. information on this.
  335.  
  336. 7) If your system uses lock files to interlock access to mailer inbox
  337. files, then you might need to make the program arch-lib/movemail
  338. setuid or setgid to enable it to write the lock files.  We believe
  339. this is safe.  The setuid/setgid bits need not be set on any other
  340. xemacs-related executables.
  341.  
  342. 8) You are done!
  343.  
  344.  
  345. MAKE VARIABLES
  346.  
  347. You can change where the build process installs XEmacs and its data
  348. files by specifying values for `make' variables as part of the `make'
  349. command line.  For example, if you type
  350.  
  351.     make install bindir=/usr/local/gnubin
  352.  
  353. the `bindir=/usr/local/gnubin' argument indicates that the XEmacs
  354. executable files should go in `/usr/local/gnubin', not
  355. `/usr/local/bin'.
  356.  
  357. Here is a complete list of the variables you may want to set.
  358.  
  359. `bindir' indicates where to put executable programs that users can
  360.     run.  This defaults to /usr/local/bin.
  361.  
  362. `datadir' indicates where to put the architecture-independent
  363.     read-only data files that XEmacs refers to while it runs; it
  364.     defaults to /usr/local/lib.  We create the following
  365.     subdirectories under `datadir':
  366.     - `xemacs-VERSION/lisp', containing the XEmacs lisp libraries, and
  367.  
  368.     - `xemacs-VERSION/etc', containing the XEmacs tutorial and the
  369.         `yow' database.
  370.     `VERSION' is the number of the XEmacs version you are installing,
  371.     like `18.59' or `19.11'.  Since these files vary from one version
  372.     of XEmacs to another, including the version number in the path
  373.     allows you to have several versions of XEmacs installed at the
  374.     same time; this means that you don't have to make XEmacs
  375.     unavailable while installing a new version.
  376.  
  377. `statedir' indicates where to put architecture-independent data files
  378.     that XEmacs modifies while it runs; it defaults to
  379.     /usr/local/lib as well.  We create the following
  380.     subdirectories under `statedir':
  381.     - `xemacs/lock', containing files indicating who is editing
  382.         what, so XEmacs can detect editing clashes between
  383.         users.
  384.  
  385. `libdir' indicates where to put architecture-specific data files that
  386.     XEmacs refers to as it runs; it too defaults to `/usr/local/lib'.
  387.     We create the following subdirectories under `libdir':
  388.     - `xemacs-VERSION/CONFIGURATION-NAME', containing executable
  389.         programs used by XEmacs that users are not expected to run
  390.         themselves and the DOC file.
  391.     `VERSION' is the number of the XEmacs version you are installing,
  392.     and `CONFIGURATION-NAME' is the argument you gave to the
  393.     `configure' program to identify the architecture and operating
  394.     system of your machine, like `mips-dec-ultrix' or
  395.     `sparc-sun-sunos'.  Since these files are specific to the version
  396.     of XEmacs, operating system, and architecture in use, including
  397.     the configuration name in the path allows you to have several
  398.     versions of XEmacs for any mix of machines and operating systems
  399.     installed at the same time; this is useful for sites at which
  400.     different kinds of machines share the file system XEmacs is
  401.     installed on.
  402.  
  403. `infodir' indicates where to put the info files distributed with
  404.     XEmacs; it defaults to `/usr/local/lib/xemacs-VERSION/info'.
  405.  
  406. `mandir' indicates where to put the man pages for XEmacs and its
  407.     utilities (like `etags'); it defaults to
  408.     `/usr/local/man/man1'.
  409.  
  410. `prefix' doesn't give a path for any specific part of XEmacs; instead,
  411.     its value is used to determine the defaults for all the
  412.     architecture-independent path variables - `datadir',
  413.     `statedir', `infodir', and `mandir'.  Its default value is
  414.     `/usr/local'; the other variables add on `lib' or `man' to it
  415.     by default.
  416.  
  417.     For example, suppose your site generally places GNU software
  418.     under `/usr/users/software/gnusoft' instead of `/usr/local'.
  419.     By including
  420.         `prefix=/usr/users/software/gnusoft'
  421.     in the arguments to `make', you can instruct the build process
  422.     to place all of the XEmacs data files in the appropriate
  423.     directories under that path.
  424.  
  425. `exec_prefix' serves the same purpose as `prefix', but instead
  426.     determines the default values for the architecture-dependent
  427.     path variables - `bindir' and `libdir'.
  428.  
  429. The above variables serve analogous purposes in the makefiles for all
  430. GNU software; here are some variables specific to XEmacs.
  431.  
  432. `lispdir' indicates where XEmacs installs and expects its lisp
  433.     libraries.  Its default value, based on `datadir' (which see),
  434.     is `/usr/local/lib/xemacs-VERSION/lisp' (where `VERSION' is as
  435.     described above).
  436.  
  437. `sitelispdir' indicates where XEmacs should search for lisp libraries
  438.     specific to your site. XEmacs checks them in order before
  439.     checking `lispdir'.  Its default value, based on `datadir'
  440.     (which see), is `/usr/local/lib/xemacs/site-lisp'.
  441.  
  442. `etcdir' indicates where XEmacs should install and expect the rest of
  443.     its architecture-independent data, like the tutorial and yow
  444.     database.  Its default value, based on `datadir'
  445.     (which see), is `/usr/local/lib/xemacs-VERSION/etc' (where
  446.     `VERSION' is as described above).
  447.  
  448. `lockdir' indicates the directory where XEmacs keeps track of its
  449.     locking information.  Its default value, based on `statedir'
  450.     (which see), is `/usr/local/lib/xemacs/lock'.
  451.  
  452. `archlibdir' indicates where XEmacs installs and expects the
  453.     executable files and other architecture-dependent data it uses
  454.     while running.  Its default value, based on `libdir' (which
  455.     see), is `/usr/local/lib/xemacs-VERSION/CONFIGURATION-NAME'
  456.     (where VERSION and CONFIGURATION-NAME are as described above).
  457.  
  458. Remember that you must specify any variable values you need each time
  459. you run `make' in the top directory.  If you run `make' once to build
  460. xemacs, test it, and then run `make' again to install the files, you
  461. must provide the same variable settings each time.  To make the
  462. settings persist, you can edit them into the `Makefile' in the top
  463. directory, but be aware that running the `configure' program erases
  464. `Makefile' and rebuilds it from `Makefile.in'.
  465.  
  466. The top-level Makefile stores the variable settings it used in the
  467. Makefiles for the subdirectories, so you don't have to specify them
  468. when running make in the subdirectories.
  469.  
  470.  
  471. CONFIGURATION BY HAND
  472.  
  473. Running the `configure' program performs the following steps.
  474.  
  475. 1) Copy `./src/config.h.in' to `./src/config.h'.
  476.  
  477. 2) Consult `./etc/MACHINES' to see what configuration name you should
  478. use for your system.  Look at the code of the `configure' script to
  479. see which operating system and architecture description files from
  480. `src/s' and `src/m' should be used for that configuration name.  Edit
  481. `src/config.h', and change the two `#include' directives to include
  482. the appropriate system and architecture description files.
  483.  
  484. 2) Edit `./src/config.h' to set the right options for your system.  If
  485. you need to override any of the definitions in the s/*.h and m/*.h
  486. files for your system and machine, do so by editing config.h, not by
  487. changing the s/*.h and m/*.h files.  Occasionally you may need to
  488. redefine parameters used in `./lib-src/movemail.c'.
  489.  
  490. 3) If you're going to use the make utility to build XEmacs, you will
  491. still need to run `configure' first, giving the appropriate values for
  492. the variables in the sections entitled "Things `configure' Might Edit"
  493. and "Where To Install Things."  Note that you may only need to change
  494. the variables `prefix' and `exec_prefix', since the rest of the
  495. variables have reasonable defaults based on them.  For each Makefile
  496. variable of this type, there is a corresponding configure option; for
  497. example, to change the location of the lock directory, you might use
  498.  
  499.      ./configure --lockdir=/nfs/xemacslock
  500.  
  501. The `configure' script is built from `configure.in' by the `autoconf'
  502. program.  However, since XEmacs has configuration requirements that
  503. autoconf can't meet, `configure.in' uses an marriage of custom-baked
  504. configuration code and autoconf macros.  New versions of autoconf
  505. could very well break this arrangement, so it may be wise to avoid
  506. rebuilding `configure' from `configure.in' when possible.
  507.  
  508.  
  509. BUILDING XEMACS BY HAND
  510.  
  511. Once XEmacs is configured, running `make' or running the shell script
  512. `build-install' in the top directory performs the following steps.
  513.  
  514. 1) Run `make src/paths.h' in the top directory.  This produces
  515. `./src/paths.h' from the template file `./src/paths.h.in', changing
  516. the paths to the values specified in `./Makefile'.
  517.  
  518. 2) Cd to `./lib-src' and run `make'.  This creates executables named
  519. `ctags' and `etags' and `wakeup' and `make-docfile' and `digest-doc'
  520. and `test-distrib'.  And others.
  521.  
  522. 3) Cd to `./src' and Run `make'.  This refers to files in the `./lisp'
  523. and `./lib-src' subdirectories using names `../lisp' and
  524. `../lib-src'.
  525.  
  526. This creates a file `./src/xemacs' which is the runnable XEmacs,
  527. assigning it a new build version number by incrementing the build
  528. version stored in `./lisp/version.el'.
  529.  
  530. It also creates a file in `./lib-src' whose name is `DOC' followed by
  531. the current XEmacs version.  This file contains documentation strings
  532. for all the functions in XEmacs.  Each time you run make to make a new
  533. xemacs, a new DOC file with a new name is made.  You must keep the DOC
  534. file for an XEmacs version as long as you keep using that XEmacs
  535. version.
  536.  
  537.  
  538. INSTALLATION BY HAND
  539.  
  540. The steps below are done by running `make install' in the main
  541. directory of the XEmacs distribution.
  542.  
  543. 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
  544. in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
  545.  
  546. Strictly speaking, not all of the executables in `./lib-src' need be copied.
  547. - The programs `cvtmail', `emacsserver', `env', `fakemail', `hexl',
  548.     `movemail', `timer', `vcdiff', `wakeup', and `yow' are used by
  549.     XEmacs; they do need to be copied.
  550. - The programs `etags', `ctags', `emacsclient', `b2m', and `rcs2log'
  551.     are intended to be run by users; they are handled below.
  552. - The programs `make-docfile', `make-path', and `test-distrib' were
  553.     used in building XEmacs, and are not needed any more.
  554. - The programs `digest-doc' and `sorted-doc' convert a `DOC' file into
  555.     a file for users to read.  There is no important reason to move them.
  556.  
  557. 2) Copy the files in `./info' to the place specified in
  558. `./lisp/site-init.el' or `./lisp/paths.el'.  Note that if the
  559. destination directory already contains a file named `dir', you
  560. probably don't want to replace it with the `dir' file in the XEmacs
  561. distribution.  Instead, you should make sure that the existing `dir'
  562. file contains an appropriate menu entry for the XEmacs info.
  563.  
  564. 3) Create a directory for XEmacs to use for clash detection, named as
  565. indicated by the PATH_LOCK macro in `./src/paths.h'.
  566.  
  567. 4) Copy `./src/xemacs' to `/usr/local/bin', or to some other directory
  568. in users' search paths.  `./src/xemacs' has an alternate name
  569. `./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
  570. `/usr/local/bin/xemacs' pointing to that alternate name, as an easy way
  571. of installing different versions.
  572.  
  573. You can delete `./src/temacs'.
  574.  
  575. 5) Copy the programs `b2m', `emacsclient', `ctags', `etags', and
  576. `rcs2log' from `./lib-src' to `/usr/local/bin'.  These programs are
  577. intended for users to run.
  578.  
  579. 6) Copy the man pages in `./etc' for xemacs, ctags, and etags into the
  580. appropriate man directories.
  581.  
  582. 7) The files in the `./src' subdirectory, except for `xemacs', are not
  583. used by XEmacs once it is built.  The source would be handy for
  584. debugging.
  585.  
  586.  
  587. PROBLEMS
  588.  
  589. See the file PROBLEMS in this directory for a list of various
  590. problems sometimes encountered, and what to do about them.
  591.  
  592.  
  593.